package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.PageResult;
import com.example.pojo.dto.CommentQueryDto;
import com.example.pojo.entity.Comment;
import com.example.pojo.vo.CommentQueryVo;
import java.util.List;

/**
 * 评论 service 层接口
 */
public interface CommentService extends IService<Comment> {

    /**
     * 普通用户发布评论
     *
     * @param comment 评论
     */
    void sendComment(Comment comment);


    /**
     * 普通用户回复评论
     *
     * @param comment 回复
     */
    void replyComment(Comment comment);

    /**
     * 分页査询自己的评论
     *
     * @param dto 条件
     * @return 分页结果
     */
    PageResult<CommentQueryVo> pageQueryPersonComment(CommentQueryDto dto);


    /**
     * 查询一个帖子的评论
     *
     * @param postId 帖子id
     * @return 评论树
     */
    List<CommentQueryVo> queryCommentTree(Integer postId);

    /**
     * 查询一个帖子的评论数量
     *
     * @param postId 帖子id
     * @return 帖子的评论数量
     */
    long queryPostTotalComment(Integer postId);

    /**
     * 删除评论及其子评论
     *
     * @param id 评论id
     */
    void deleteCommentAndChildComment(Integer id);
}
